package com.project.service;

import com.github.pagehelper.PageInfo;
import com.project.Bean.ShopBean;

import java.time.LocalDate;
import java.util.List;

public interface IShopService {
    /**
     * 添加商品
     * @param shop 商品对象
     * @return 是否添加成功
     */
    void addShop(ShopBean shop);

    /**
     * 根据id删除商品
     * @param id 商品id
     * @return 是否删除成功
     */
    void deleteShopById(Integer id);

    /**
     * 根据id修改商品价格
     * @param id 商品id
     * @param price 商品价格
     */
    void updateShopPriceById(Integer id, Integer price);

    /**
     * 根据id查询商品
     * @param id 商品id
     * @return 商品对象
     */
    ShopBean findById(Integer id);

    /**
     * 根据商品名、价格范围动态条件分页查询商品
     * @param name 商品名
     * @param minPrice 最小价格
     * @param maxPrice 最大价格
     * @param pageSize 每页数量
     * @return 商品列表
     */
    PageInfo<ShopBean> findByNamePrice(String name, int minPrice, int maxPrice, int pageSize);

    /**
     * 根据厂家、生产日期时间段动态条件分页查询商品
     * @param factory 厂家
     * @param startDate 起始日期
     * @param endDate 结束日期
     * @param pageSize 每页数量
     * @return 商品列表
     */
    PageInfo<ShopBean> getShopListByFactoryAndDateRange(String factory, LocalDate startDate, LocalDate endDate,int pageSize);

    /**
     * 批量添加商品
     * @param shopList 商品列表
     */
    void addShopList(List<ShopBean> shopList);

    /**
     * 批量删除商品
     * @param idList 商品id列表
     */
    void delAll(int[] idList);
}


